// login.js - 登录页面逻辑
import { post } from '../../utils/request';

Page({
  data: {
    account: '',      // 账号
    password: '',     // 密码
    showPassword: false // 是否显示密码
  },

  // 账号输入
  onAccountInput(e) {
    this.setData({
      account: e.detail.value
    });
  },

  // 密码输入
  onPasswordInput(e) {
    this.setData({
      password: e.detail.value
    });
  },

  // 切换密码可见性
  togglePasswordVisibility() {
    this.setData({
      showPassword: !this.data.showPassword
    });
  },

  // 登录
  onLogin() {
    const { account, password } = this.data;
    
    // 表单验证
    if (!account) {
      wx.showToast({
        title: '请输入账号',
        icon: 'none'
      });
      return;
    }
    
    if (!password) {
      wx.showToast({
        title: '请输入密码',
        icon: 'none'
      });
      return;
    }
    
    // 手机号码格式验证
    if (!this.validatePhone(account)) {
      wx.showToast({
        title: '请输入正确的手机号码',
        icon: 'none'
      });
      return;
    }

    // 发送登录请求
    wx.showLoading({
      title: '登录中',
    });

    post('/api/auth/login', {
      phone: account,
      password: password
    })
    .then(res => {
      wx.hideLoading();
      
      if (res.code === 0) {
        // 登录成功，保存token和用户信息
        const { token, userInfo } = res.data;
        
        // 存储到全局变量
        const app = getApp();
        app.globalData.token = token;
        app.globalData.userInfo = userInfo;
        
        // 存储到本地
        wx.setStorageSync('token', token);
        wx.setStorageSync('userInfo', userInfo);
        
        // 显示成功提示
        wx.showToast({
          title: '登录成功',
          icon: 'success'
        });
        
        // 延迟返回上一页或跳转到首页
        setTimeout(() => {
          // 检查是否有来源页面
          const pages = getCurrentPages();
          if (pages.length > 1) {
            wx.navigateBack();
          } else {
            wx.switchTab({
              url: '/pages/index/index'
            });
          }
        }, 1500);
      } else {
        // 登录失败
        wx.showToast({
          title: res.message || '登录失败',
          icon: 'none'
        });
      }
    })
    .catch(err => {
      wx.hideLoading();
      console.error('登录请求失败:', err);
      wx.showToast({
        title: '网络异常，请稍后重试',
        icon: 'none'
      });
    });
  },

  // 微信登录
  wechatLogin() {
    wx.showLoading({
      title: '登录中',
    });
    
    // 调用微信登录接口
    wx.login({
      success: (res) => {
        if (res.code) {
          // 发送code到后端获取用户信息
          post('/api/auth/wechat-login', {
            code: res.code
          })
          .then(response => {
            wx.hideLoading();
            
            if (response.code === 0) {
              // 登录成功，保存token和用户信息
              const { token, userInfo } = response.data;
              
              // 存储到全局变量
              const app = getApp();
              app.globalData.token = token;
              app.globalData.userInfo = userInfo;
              
              // 存储到本地
              wx.setStorageSync('token', token);
              wx.setStorageSync('userInfo', userInfo);
              
              // 显示成功提示
              wx.showToast({
                title: '登录成功',
                icon: 'success'
              });
              
              // 延迟返回上一页或跳转到首页
              setTimeout(() => {
                // 检查是否有来源页面
                const pages = getCurrentPages();
                if (pages.length > 1) {
                  wx.navigateBack();
                } else {
                  wx.switchTab({
                    url: '/pages/index/index'
                  });
                }
              }, 1500);
            } else {
              // 登录失败
              wx.showToast({
                title: response.message || '微信登录失败',
                icon: 'none'
              });
            }
          })
          .catch(err => {
            wx.hideLoading();
            console.error('微信登录请求失败:', err);
            wx.showToast({
              title: '网络异常，请稍后重试',
              icon: 'none'
            });
          });
        } else {
          wx.hideLoading();
          wx.showToast({
            title: '微信登录失败，请重试',
            icon: 'none'
          });
        }
      },
      fail: (err) => {
        wx.hideLoading();
        console.error('微信登录接口调用失败:', err);
        wx.showToast({
          title: '微信登录失败，请重试',
          icon: 'none'
        });
      }
    });
  },

  // 跳转到注册页面
  goRegister() {
    wx.navigateTo({
      url: '/pages/user/register'
    });
  },

  // 跳转到忘记密码页面
  goForgotPassword() {
    wx.navigateTo({
      url: '/pages/user/forgot-password'
    });
  },

  // 验证手机号格式
  validatePhone(phone) {
    const phoneRegex = /^1[3-9]\d{9}$/;
    return phoneRegex.test(phone);
  }
});